﻿Public Class Dadicional

    Public Shared Function SeleccionarTodoAdiconales(ByVal descEmpresa As String, ByVal pAdicional As Eadicional) As List(Of Eadicional)
        Dim adicinales As List(Of Eadicional) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_adicionalesXcliente_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAdicional.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAdicional.idEtapa
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pAdicional.idCliente
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            adicinales = New List(Of Eadicional)
                            Dim adicional As Eadicional = Nothing
                            Do While dr.Read
                                adicional = New Eadicional( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idAdicional")), _
                                    dr.GetInt32(dr.GetOrdinal("idConceptoAdicional")), _
                                    dr.GetString(dr.GetOrdinal("descConceptoAdicional")), _
                                    dr.GetInt32(dr.GetOrdinal("idUndInmob")), _
                                    dr.GetInt32(dr.GetOrdinal("idEdiMzn")), _
                                    dr.GetString(dr.GetOrdinal("nomEdiMzn")), _
                                    dr.GetInt32(dr.GetOrdinal("idModelo")), _
                                    dr.GetString(dr.GetOrdinal("nomModelo")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("nroInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoTotalAdiconal")), _
                                    dr.GetInt32(dr.GetOrdinal("idMoneda")), _
                                    dr.GetString(dr.GetOrdinal("descMoneda")), _
                                    dr.GetInt32(dr.GetOrdinal("nroCuotas")), _
                                    dr.GetString(dr.GetOrdinal("fchSolicitada")), _
                                    dr.GetString(dr.GetOrdinal("fchAprobada")), _
                                    dr.GetString(dr.GetOrdinal("nroPresupuesto")), _
                                    dr.GetString(dr.GetOrdinal("descripcion")))
                                adicinales.Add(adicional)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return adicinales
    End Function
    Public Shared Function SelClienteConAdicionales(ByVal descEmpresa As String, ByVal filtro As String) As List(Of Ecliente)
        Dim clienteAdicionales As List(Of Ecliente) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_clientesConadicionales_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            clienteAdicionales = New List(Of Ecliente)
                            Dim cliente As Ecliente = Nothing
                            Do While dr.Read
                                cliente = New Ecliente( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("descTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("departamento")), _
                                    dr.GetString(dr.GetOrdinal("provincia")), _
                                    dr.GetString(dr.GetOrdinal("distrito")), _
                                    dr.GetString(dr.GetOrdinal("razonSocial")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("puesto")))
                                clienteAdicionales.Add(cliente)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using
        Return clienteAdicionales
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pAdicional As Eadicional) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_adionalesxCliente_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAdicional.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAdicional.idEtapa
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pAdicional.idCliente
                cmd.Parameters.Add("@idConceptoAdicional", SqlDbType.Int).Value = pAdicional.idAdicional
                cmd.Parameters.Add("@idUndInmob", SqlDbType.Int).Value = pAdicional.idUndInmob
                cmd.Parameters.Add("@idEdiMzn", SqlDbType.Int).Value = pAdicional.idEdiMzn
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = pAdicional.idModelo
                cmd.Parameters.Add("@montoTotalAdiconal", SqlDbType.Decimal, 15, 2).Value = pAdicional.montoTotalAdiconal
                cmd.Parameters.Add("@idMoneda", SqlDbType.Int).Value = pAdicional.idMoneda
                cmd.Parameters.Add("@nroCuotas", SqlDbType.Int).Value = pAdicional.nroCuotas
                cmd.Parameters.Add("@fchSolicitada", SqlDbType.VarChar, 11).Value = pAdicional.fchSolicitada
                cmd.Parameters.Add("@fchAprobada", SqlDbType.VarChar, 11).Value = pAdicional.fchAprobada
                cmd.Parameters.Add("@nroPresupuesto", SqlDbType.VarChar, 11).Value = pAdicional.nroPresupuesto
                'cmd.Parameters.Add("@dcmntoEscaneado", SqlDbType.VarChar, 11).Value = pAdicional.dcmntoEscaneado
                cmd.Parameters.Add("@descripcion", SqlDbType.VarChar, 45).Value = pAdicional.descripcion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pAdicional.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pAdicional As Eadicional) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_adionalesxCliente_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pAdicional.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pAdicional.idEtapa
                cmd.Parameters.Add("@idCliente", SqlDbType.Int).Value = pAdicional.idCliente
                cmd.Parameters.Add("@idAdicional", SqlDbType.Int).Value = pAdicional.idAdicional
                cmd.Parameters.Add("@idConceptoAdicional", SqlDbType.Int).Value = pAdicional.idAdicional
                cmd.Parameters.Add("@idUndInmob", SqlDbType.Int).Value = pAdicional.idUndInmob
                cmd.Parameters.Add("@idEdiMzn", SqlDbType.Int).Value = pAdicional.idEdiMzn
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = pAdicional.idModelo
                cmd.Parameters.Add("@montoTotalAdiconal", SqlDbType.Decimal, 15, 2).Value = pAdicional.montoTotalAdiconal
                cmd.Parameters.Add("@idMoneda", SqlDbType.Int).Value = pAdicional.idMoneda
                cmd.Parameters.Add("@nroCuotas", SqlDbType.Int).Value = pAdicional.nroCuotas
                cmd.Parameters.Add("@fchSolicitada", SqlDbType.VarChar, 11).Value = pAdicional.fchSolicitada
                cmd.Parameters.Add("@fchAprobada", SqlDbType.VarChar, 11).Value = pAdicional.fchAprobada
                cmd.Parameters.Add("@nroPresupuesto", SqlDbType.VarChar, 11).Value = pAdicional.nroPresupuesto
                cmd.Parameters.Add("@descripcion", SqlDbType.VarChar, 45).Value = pAdicional.descripcion
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pAdicional.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    'Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pVendedor As Evendedor) As Boolean
    '    Dim resultado As Boolean = False

    '    Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
    '        Using cmd As New SqlCommand("usp_vendedor_del", cn)
    '            cmd.CommandType = CommandType.StoredProcedure
    '            cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pVendedor.idVendedor
    '            cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pVendedor.idUsuario
    '            Try
    '                cn.Open()
    '                cmd.ExecuteNonQuery()
    '                resultado = True
    '            Catch ex As Exception
    '                Throw
    '            End Try
    '        End Using
    '    End Using

    '    Return resultado
    'End Function

End Class
